লারাভেল (Laravel) একটি শক্তিশালী PHP ফ্রেমওয়ার্ক, যা ডেভেলপারদের জন্য সহজ এবং কার্যকরী ডেটাবেস পরিচালনা ব্যবস্থা প্রদান করে। লারাভেল সিডিং (Seeding) হল একটি প্রক্রিয়া, যার মাধ্যমে ডাটাবেসে ডামি বা প্রাথমিক ডেটা ইনসার্ট করা হয়। এটি সাধারণত ডেভেলপমেন্ট বা টেস্টিং পরিবেশে ব্যবহৃত হয়, যেখানে রিয়েল ডেটার পরিবর্তে কিছু ডামি ডেটা প্রয়োজন হয়।
সিডিং (Seeding) হল ডেটাবেসের টেবিলগুলিতে প্রাথমিক ডেটা ইনসার্ট করার প্রক্রিয়া। এর মাধ্যমে আপনি ডাটাবেসে প্রয়োজনীয় ডেটা যেমন ব্যবহারকারী, পণ্য, ক্যাটেগরি, বা অন্যান্য ডামি ডেটা তৈরি করতে পারেন। এটি অ্যাপ্লিকেশন ডেভেলপমেন্টে খুবই উপকারী, বিশেষ করে যখন ডেভেলপারদের নতুন টেবিল তৈরি করতে হয় এবং ডাটাবেসে কিছু প্রাথমিক ডেটা থাকতে হয়।
লারাভেলে সিডার ফাইলগুলি database/seeders
ডিরেক্টরিতে রাখা হয়। নতুন একটি সিডার ফাইল তৈরি করতে artisan
কমান্ড ব্যবহার করা হয়।
নতুন একটি সিডার ফাইল তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করা হয়:
php artisan make:seeder UsersTableSeeder
এই কমান্ডটি database/seeders/UsersTableSeeder.php
ফাইল তৈরি করবে, যেখানে আপনি টেবিলে ডেটা ইনসার্ট করার কোড লিখবেন।
এখন UsersTableSeeder.php
ফাইলটি খুলে সেখানে ডেটা ইনসার্ট করার কোড লিখুন:
// database/seeders/UsersTableSeeder.php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class UsersTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->insert([
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
]);
}
}
এখানে, users
টেবিলে একটি নতুন ব্যবহারকারী ইনসার্ট করা হয়েছে। আপনি এইভাবে অন্যান্য টেবিলেও ডেটা ইনসার্ট করতে পারেন।
সিডার ফাইল তৈরি করার পর, সেগুলোকে ডাটাবেসে ইনসার্ট করতে artisan
কমান্ড ব্যবহার করা হয়। সমস্ত সিডার রান করতে db:seed
কমান্ড ব্যবহার করুন:
php artisan db:seed
এটি সমস্ত সিডার রান করবে এবং আপনার ডাটাবেসে ডেটা ইনসার্ট করবে।
যদি আপনি কোনো নির্দিষ্ট সিডার ফাইল রান করতে চান, তবে নিচের কমান্ডটি ব্যবহার করতে পারেন:
php artisan db:seed --class=UsersTableSeeder
এটি শুধুমাত্র UsersTableSeeder
সিডার ফাইলটি রান করবে।
আপনি যদি ডাটাবেস মাইগ্রেশন এবং সিডিং একসাথে চালাতে চান, তাহলে migrate:refresh
কমান্ড ব্যবহার করতে পারেন। এটি ডাটাবেস মাইগ্রেশন রিফ্রেশ করবে এবং তারপর সিডার রান করবে:
php artisan migrate:refresh --seed
এটি ডাটাবেসের সমস্ত মাইগ্রেশন রোলব্যাক করবে, পুনরায় মাইগ্রেশন করবে এবং তারপর সিডার ফাইল রান করবে।
লারাভেল সিডিংয়ে ফেক ডেটা ইনসার্ট করার জন্য ফ্যাক্টরি (Factory) ব্যবহার করা যায়। Faker
লাইব্রেরি দিয়ে ডেভেলপাররা সহজেই ফেক ডেটা তৈরি করতে পারেন, যা ডেটাবেস সিডিংয়ে খুবই উপকারী।
নতুন একটি ফ্যাক্টরি তৈরি করতে artisan
কমান্ড ব্যবহার করুন:
php artisan make:factory UserFactory
এরপর database/factories/UserFactory.php
ফাইলে ফেক ডেটা তৈরি করতে হবে:
// database/factories/UserFactory.php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
class UserFactory extends Factory
{
protected $model = User::class;
public function definition()
{
return [
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'password' => bcrypt('password'),
];
}
}
এখন আপনি সিডার ফাইলে ফ্যাক্টরি ব্যবহার করতে পারেন:
// database/seeders/UsersTableSeeder.php
use App\Models\User;
public function run()
{
User::factory()->count(50)->create();
}
এটি ৫০টি ফেক ইউজার ইনসার্ট করবে।
লারাভেল সিডিং (Laravel Seeding) ব্যবহার করে আপনি সহজেই ডাটাবেসে ডামি ডেটা বা প্রাথমিক ডেটা ইনসার্ট করতে পারেন, যা ডেভেলপমেন্ট এবং টেস্টিং প্রক্রিয়াকে দ্রুত ও সহজ করে তোলে। ফেক ডেটার মাধ্যমে বড় ডেটাবেস তৈরি করা সম্ভব এবং এটি প্রকৃত ডেটা না থাকলেও আপনার অ্যাপ্লিকেশনটি পরীক্ষার জন্য প্রস্তুত থাকে।
Read more